package com.bian.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.Alias;

import java.io.Serializable;
import java.util.Date;

/**
 * 眼动跳视实验数据记录 bian_saccade_trials
 *
 * @author Kaick
 * @date 2025-08-07
 */
@Accessors(chain  = true )
@Data
@Alias("BianSaccadeTrials")
public class BianSaccadeTrials implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 本次点击的唯一流水号 */
    private String trialId;

    /** 被试编号 */
    private String participantId;

    /** 测试日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sessionDate;

    /** 当前实验块（1-测试，2-正向眼动，3-反向眼动） */
        private String blockNo;

    /** 当前块内的 trial 序号，第几次呈现 */
    private String trialNo;

    /** 刺激呈现时间戳 (毫秒) */
    private String targetOnsetTime;

    /** 刺激中心屏幕 X 坐标（像素） */
        private Integer targetXPx;

    /** 刺激中心屏幕 Y 坐标（像素） */
        private Integer targetYPx;

    /** 原始眼动采样序列（像素坐标）, e.g., [{"t": 100, "x": 950.0, "y": 530.0}, ...] */
        private String gazeSamples;

    /** 眼跳起始时间戳 (毫秒) */
    private String saccadeOnsetTime;

    /** 眼跳潜伏期（ms） */
        private String saccadeLatencyMs;

    /** 眼跳落点屏幕 X 坐标（像素） */
        private Integer landingXPx;

    /** 眼跳落点屏幕 Y 坐标（像素） */
        private Integer landingYPx;

    /** 落点相对刺激中心的 X 方向像素偏移 */
    private Integer landingOffsetXPx;

    /** 落点相对刺激中心的 Y 方向像素偏移 */
    private Integer landingOffsetYPx;

    /** 实际眼跳振幅（像素距离） */
        private Integer amplitudePx;

    /** 理论上应达到的振幅（像素距离） */
        private Integer expectedAmplitudePx;

    /** 振幅误差 */
    private Integer amplitudeErrorPx;

    /** 眼跳向量 X（像素） */
        private Integer saccadeVectorXPx;

    /** 眼跳向量 Y（像素） */
        private Integer saccadeVectorYPx;

    /** 方向误差（度），由像素向量计算 */
        private Integer directionErrorDeg;

    /** 方向错误标志（>±5°判错） */
        private Integer directionErrorFlag;

    /** 方向正确标记 */
    private Integer isCorrectDirection;

    /** 综合判定本次 trial 是否正确 */
    private Integer isCorrectTrial;

    /** 删除状态 0正常，其他删除 */
    private Integer delFlag;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;


}



